# -*- coding: UTF-8 -*- #
"""
-------真正的勇士， 敢于直面惨淡的Warning、 敢于正视淋漓的Error-----
@author : 贾鹏博
@file : 35、configparser库使用.py
@time : 2022/5/28 9:48
"""

"""
在开发过程中，很多时候需要处理配置文件的读取解析和改写，在 python 中专门处理配置文件的模块就是 configparser :配置解析器
configparser - 配置解析器 ： 
    1、可用于对符合规范的 conf.ini 配置文件进行解析读取
    2、并支持增删改查，定义新的配置文件
"""

"""
配置文件如下 ：
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
"""

import configparser


# 创建配置文件
def create_config():
    """
    创建配置文件
    :return:
    """
    config = configparser.ConfigParser()
    # 开始创建第一个 section ，类似于 list 的赋值方式，值为 dict
    config['DEFAULT'] = {'serveraliveinterval': '4',
                         'compression': 'yes',
                         'compressionlevel': '9'
                         }
    # 创建第二个 section
    config['username'] = {}
    # 类似于通过 list 的下标来赋值元素
    config['username']['admin'] = 'gaojianshuai'
    config['username']['array'] = 'gaojs'

    config['topsecrect'] = {}
    topsecrect = config['topsecrect']
    topsecrect['port'] = '22'

    with open('configuration.ini', 'a') as configfile:
        config.write(configfile)

    def read_config():
        """
        读取配置文件
        :return:
        """
        config = configparser.ConfigParser()
        config.read('comfiguration.ini')
        for key in config['DEFAULT']:
            print(key)
        config.get('DEFAULT', 'compression')
